package com.java复习.线程;

public class Demo2 {
    public static void main(String[] args) {
        // 通过继承Runnable方式,如何启动线程
        Cat cat1 = new Cat();
        Thread t1 = new Thread(cat1);  // 用Thread包装一下
        t1.setName("线程一");
        Thread t2 = new Thread(cat1);  // 包装多次，不用重新new对象
        t2.setName("线程二");
        Thread t3 = new Thread(cat1);
        t3.setName("线程三");

        t1.start();
        t2.start();
        t3.start();  // 多线程，并发执行  ----  提高效率    容易发生线程安全的问题

        System.out.println("叫了，程序继续执行。。。");

    }
}

class Cat implements Runnable{

    @Override
    public void run() {
        while (true){
            System.out.println(Thread.currentThread().getName()+"小猫乱叫！！！");
            try {
                Thread.sleep(1000);  // 休眠1s
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}
